petersaysdenim

petersaysdenim

Jumat, 03 Januari 2014

MIKROKONTROLER



NAMA: WAHYU SENO AJI
NIM: 11.11.2590
KELAS: TI 11 D
 
Mikrokontroler adalah Suatu kontroler digunakan untuk mengontrol suatu proses atau aspek
dari lingkungan. Satu contoh aplikasi dari mikrokontroler adalah untuk memonitor
rumah kita. Ketika suhu naik kontroler membuka jendela dan sebaliknya.
Pada masanya, kontroler dibangun dari komponen-komponen logika secara
keseluruhan, sehingga menjadikannya besar dan berat. Setelah itu barulah
dipergunakan mikrokprosesor sehingga keseluruhan kontroler masuk kedalam PCB
yang cukup kecil.

PERBEDAAN MIKROKONTROLER DENGAN MIKROPROSESOR
Mikrokontroler (pengendali mikro) adalah system mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dengan mikroprosesor serba guna yang digunakan dalam sebuah PC, karena sebuah mikrokontroler umumnya telah berisi komponen sistem minimal mikroprosesor, yakni memori, register dan antarmuka I/O yang terintegrasi bersama mikroprosesornya sendiri dalam sebuah chip.
Ditinjau dari segi arsitekturnya, mikroprosesor hanya merupakan single chip CPU, sedangkan mikrokontroler dalam IC-nya selain CPU juga terdapat device lain yang memungkinkan mikrokontroler berfungsi sebagai suatu single chip computer. Dalam sebuah IC mikrokontroler telah terdapat ROM, RAM, EPROM, serial interface dan paralel interface, timer, interrupt controller, konverter Anlog ke Digital, dan lainnya (tergantung feature yang melengkapi mikrokontroler tersebut).
Sedangkan dari segi aplikasinya, mikroprosessor hanya berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan mikrokontroller, dalam bentuknya yang mungil, pada umumnya ditujukan untuk melakukan tugas–tugas yang berorientasi kontrol pada rangkaian yang membutuhkan jumlah komponen minimum dan biaya rendah (low cost).

 Gambar diatas merupakan contoh konfigurasi kaki-kaki pada rangkaian jam digital. Perbedaan mungkin terjadi, karena kita bisa mengatur sesuai dengan konfigurasi yang kita mau untuk kita rancang.
Pada gambar diatas terdapat komponen-komponen:
a) Mikrokontroler
Mikrokontroler digunakan sebagai pemroses perintah-perintah yang diberikan. Mikrokontroler yang sering digunakan adalah AT89s51, AT89s52, AT89s53 dan masih banyak lagi. IC tersebut termasuk kedalam keluarga mcs51. Selain tipe-tipe tersebut ada AVR yang mulai sering digunakan.
Rangkaian minimum modul mikrokontroler adalah:
• Rangkaian osilasi terletak di kaki 18 dan 19.
• Power on reset terletak di kaki 9.
• Rangkaian supply 5 volt yang dihasilkan oleh regulator 7805. Untuk vcc di kaki 40 dan 31. Untuk ground di kaki 20.
b) 7-segment
Digunakan sebagai display/penampil angka pada jam digital. Terdapat dua tipe 7-segment. Yaitu: common anoda dan common katoda. Common anoda maksudnya adalah kaki-kaki anoda pada led didalam 7-segment disatukan(terletak di tengah-tengah atas/bawah) untuk kemudian disambungkan dengan vcc(pin ditengah diberi vcc. Salah satu kaki saja atas atau bawah). Agar angka tampil dengan konfigurasi ini, maka pin-pin kaki 7-segment yang lain harus diberi ground/low. Untuk common katoda merupakan kebalikan dari common anoda.
c) Transistor
Transistor disini digunakan untuk penguat arus dan sebagai sakelar. Penguat arus maksudnya disini adalah memperkuat arus output dari mikrokontroler yang terlalu lemah, sehingga bisa memberi arus yang cukup untuk 7-segment.
Sebagai sakelar maksudnya adalah untuk digunakan dalam proses scanning.
Proses scanning disini maksudnya adalah menampilkan angka yang tertampil pada 7-segment secara bergantian antara 7-segment yang satu dengan yang lain dari 7-segment kesatu lalu kedua kemudian ketiga akhirnya keempat. Ini dilakukan karena tidak mungkin mikrokontroler mensuplai arus pada keempat 7-segment secara bersamaan karena arus yang dikeluarkan sangat terbatas. Pergantian ini umumnya dilakukan dengan sangat cepat, sehingga mata tidak dapat mengikuti. Sehingga yang terlihat oleh mata adalah angka pada keempat 7-segment tertampil semua.
Transistor yang dipergunakan untuk 7-segment common anoda adalah transistor pnp(bc557). Sedangkan transistor yang digunakan untuk 7-segment common katoda adalah transistor npn(bc548). Selain itu untuk transistor yang digunakan untuk 7-segment yang besar berbeda dengan yang digunakan untuk 0.5 inch misalnya.
d) Resistor
Resistor digunakan sebagai pembatas arus agar arus menuju ke 7-segment dan mikrokontroler tidak berlebihan. Nilai resistor yang digunakan tergantung oleh komponen yang dipakai. Contohnya nilai resistor yang digunakan untuk 7-segment 0.5 inch berbeda dengan yang digunakan untuk 7-segment yang lebih besar.
e) Switch
Switch dapat ditambahkan pada mikrokontroler bila ingin menambah atau mengurangi tampilan jam ataupun menit.
Contoh pemograman 7-segment:
Disini kita memakai 7-segment common anoda, dengan menggunakan port 1 mikrokontroler. Pada program (bahasa assembly) ini akan menampilkan angka dari 0 sampai 9 dengan waktu tunda 1 detik.
Org 0h ; alamat awal 0h (origin 0h)
Utama: mov R1,#0 ; isi R1 dengan nol
mov a,R1 ; menunjuk data lookup tabel pertama
mov dptr,#Angka ; isi dptr dengan alamat lookup tabel
Ulang: movc a,@a+dptr ; copy data ke akumulator
mov p1,a ; tampilkan ke p1
Call Tunda ; tunda 1 detik
Inc a ; naikkan Akumulator
Cjne a,#0ah,Ulang ; jika A ≠ 10, ulang
Jmp Utama ; jika A = 10, ulang dari awal lagi
Tunda: mov R0,#250
Tunda1: mov R1,#250
Tunda2: mov R2,#6
Tunda3: DJNZ R2,Tunda3
DJNZ R1,Tunda2
DJNZ R0,Tunda1
RET
END
Rangkaian alarm yang akan dibuat adalah rangkaian alarm sirene. Rangkaian alarm ini akan berbunyi seperti suara sirene polisi.
Blok rangkaian pertama di sebelah kiri merupakan rangkaian yang membentuk gelombang gigi gergaji (sawtooth). Oleh karena itu keluaran dari blok rangkaian ini adalah gelombang gigi gergaji. Sedangkan blok rangkaian di sebelah kanan merupakan rangkaian multivibrator. Rangkaian ini membentuk gelombang segi empat.
Cara kerja rangkaian ini adalah: Bila tegangan mengisi C1 hingga muatan C1 penuh, maka T2 yang tadinya aktif akan off. Lalu akan mengisi C2 (T1 akan on) sampai muatan C2 akan penuh sehingga T1 off dan bila T1 off maka akan mengisi kembali C1. Kemudian berulang-ulang seperti itu, yang akan menghasilkan gelombang segi empat.
Gelombang segi empat akibat dipengaruhi oleh gelombang gigi gergaji dari rangkaian pertama, frekuensi gelombang segi empat akan berubah menjadi frekuensi tinggi kemudian rendah dan begitu seterusnya. Akibat perubahan frekuensi ini maka bunyi yang dikeluarkan speaker akan seperti bunyi sirene. Berikut dibawah ini rangkaian alarm tersebut:


LINK LAINNYA:
 

Minggu, 23 Desember 2012

Tugas 8 pemrograman visual

1Program ParamArray

- program dan penjelasannya :
Public Class Form6
Private Function fstat(ByVal ParamArray args() As Object) As Single()
Membuat sub program dengan Function dengan variable fstat dengan parameter ByVal yang bererti melewatkan parameter secara nilai dengan tipe single yang berarti bilangannya bulat.
Dim hasil(3) As Single
Membuat variable dengan nama hasil dengan jumlah teratas atau Ubound 3 yang bertipe data single.
Dim i As Integer
Membuat variable dengan nama i yang bertipe data integer.
For i = 0 To UBound(args)
Merupakan perulangan untuk i=0 sampai batas teratas dari array
_MORE_TEXT_TAG_
hasil(0) = hasil(0) + args(i)
hasil (0) = 0 karena perulangan belum di mulai.
args(i) = nilai dari indeks array ke i
If i = 0 Then
jika i = 0 maka lakukan sebagai berikut
hasil(1) = args(i)
hasil 1 = nilai dari indeks ke i
hasil(2) = args(i)
hasil 2 =nilai dari indeks ke i
End If
Selain i=0,atau jika i bukan sama dengan 0
If hasil(1) < args(i) Then hasil(1) = args(i)
Jika hasil 1 lebih kecil dari nilai i maka hasil 1= nilai dai indeks ke i
If hasil(1) > args(i) Then hasil(1) = args(i)
Jika hasil 2 lebih kecil dari nilai i maka hasil 2= nilai dai indeks ke i
Next i
Return hasil
Akan kembali ke hasil
End Function
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim statistik As Single() = fstat(1, 6, 2)
Membuat vaariable dengan nama ststistik yang bertipe data single dengan nilai array pada indeks ke 0=1
Indeks ke 1=6
Indeks ke 2=2
TextBox1.Text = statistik(0)
TextBox2.Text = statistik(1)
TextBox3.Text = statistik(2)
Pada texbox1 akan bernilai sesuai dengan statistik dari indeks ke 0
Demikian juga pada texbox ke 2 dan 3
End Sub

2. Over Loading Function
 

 
Overloading function adalah beberapa fungsi yang memiliki perintah berbeda tetapi namanya sama. Sebagai contoh adalah program dibawah ini. Terdapat 2 Fuction hitung pada program ini namun program hanya akan menjalankan salah satunya saja.

Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer) As Integer
hitung = bil1 + bil2
End Function
Function hitung(ByVal bil1 As Integer, ByVal bil2 As Integer, ByVal bil3 As Integer) As Integer
hitung = bil1 + bil2 + bil3
End Function
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = hitung(1, 2, 3)
End Sub

Pada dua procedure diatas, yg pertama mempunyai dua buah deklarasi variabel dan yang kedua mempunyai tiga deklarasi variabel, lalu bagaimana cara kerjanya?
Hal ini bergantung dari variabel yg anda suplay pada saat procedure tersebut anda panggil,
jika anda hanya menyuplai tiga variabel, pada saat pemanggilan procedure maka yg di eksekusi adalah procedure yang kedua, akan tetapi
jika anda memberikan dua nilai variabel pada saat pemanggilan procedure maka yg dieksekusi adalah procedure yg pertama.

3. FUNGSI BAWAAN DALAM VISUAL BASIC
Dalam Visual Basic, Fungsi bawaan adalah suatu fungsi yang sudah ada dalam Visual Basic dan dapat digunakan secara langsung. Ada sejumlah fungsi-fungsi bawaan dalam VB diantaranya adalah fungsi untuk mengubah suatu tipe data String dari suatu TextBox menjadi tipe data numerik agar dapat digunakan untuk melakukan operasi perhitungan, fungsi yang berkaitan dengan matematika, dll.
1.Fungsi-fungsi Numerik Dengan menggunakan fungsi-fungsi bawaan yang disediakan, waktu pembuatan sebuah program dapat disingkat. Fungsi-fungsi numerik merupakan fungsi-fungsi yang berkaitan dengan tipe data numerik.
Fungsi-fungsi ini dapat dikelompokkan sebagai berikut :

a. Fungsi-fungsi konversi ke integer. Ada tiga macam fungsi yang melakukan konversi ke tipe data integer yaitu seperti terlihat pada tabel .
CInt () ===> Pembuatan nilai desimal 0.5 dan lebih ke integer yang lebih dekat
Fix () ===> Pemotongan suatu nilai desimal menjadi integer
Int () ===> Pembuatan ke bawah suatu nilai desimal
Untuk bilangan positif, fungsi Fix() dan Int() memberikan perlakuan yang sama. Sebagai contoh, kedua pernyataan berikut ini mengembalikan nilai yang sama
ans1 = Int (14.5) mengembalikan 14
ans2 = Fix (14.5) mengembalikan 14
Namun fungsi Fix() dan Int() memberikan perlakuan berbeda pada bilangan negatif. Kedua pernyataan berikut memberikan pengembalian yang berbeda.
ans1 = Int (-14.5) mengembalikan -15
ans2 = Fix (-14.5) mengembalikan 14
Sedangkan fungsi CInt() mengembalikan pembulatan angka yang terdekat. Berikut ni contoh penggunaan CInt() :
ans1 = CInt (14.1) mengembalikan 14
ans2 = CInt (14.5) mengembalikan 14
ans3 = CInt (14.6) mengembalikan 14
ans2 = CInt (-14.5) mengembalikan -14

b. Fungsi ’f1’endash Fungsi konversi tipe data
CCur () mengkonversi argumen menjadi tipe data currency
CDbl () mengkonversi argumen menjadi tipe data double (presisi ganda)
CLng () mengkonversi argumen menjadi tipe data long integer
CSng () mengkonversi argumen menjadi tipe data single
CStr () mengkonversi argumen menjadi tipe data string
Ivar () mengkonversi argumen menjadi tipe data variant
Sebagai contoh misalkan sebuah data yang merupakan hasil bagi (1 / 7)
lblNilai = (1 / 7) ditampilkan .1428571
lblNilai = CDbl (1 / 7) ditampilkan .142857142857143

c. Fungsi-fungsi matematika Fungsi-fungsi yang bekaitan dengan matematika seperti terlihat pada
Abs () mengembalikan nilai absolut dari argumen
Atn () mengembalikan nilai arc tangen dari argumen dalam bentuk radian
Cos () mengembalikan nilai cosinus dari argumen radian
Exp () mengembalikan nilai exponensial dari argumen
Log () mengembalikan nilai logaritma dari argumen
Sin () mengembalikan nilai sinus dari argumen dalam radian
Sqr () mengembalikan nilai akar dari argumen
Tan () mengembalikan nilai tangen dari argumen dalam radian

2.Fungsi-fungsi String
Selain fungsi-fungsi numerik, Visual Basic juga mempunyai sejumlah fungsi-fungsi String diantaranya seperti berikut
LCase$ () mengembalikan argumen string sebagai tipe data string huruf
Ucase () mengembalikan argumen string sebagai tipe data variant huruf besar
Ucase$ () mengembalikan argumen string sebagai tipe data string huruf besar
Val () mengembalikan nilai number dari argumen string
Len () mengembalikan nilai sumber yang menunjukan panjang string
Substring merupakan bagian dari suatu string. Untuk memperoleh substring dari suatu string dapat digunakan 3 fungsi berikut :
 
a. Left$(StringVal, length)
Fungsi ini mengembalikan nilai string dari sebelah kiri sebanyak length karakter .
 
b. Right$(StringVal, length)
Fungsi ini mengembalikan nilai string dari sebelah kanan sebanyak length karakter .
 
c. Mid$(StringVal, startVal, length)
Fungsi ini mengembalikan nilai string dari startVal sebanyak length karakter .
Contoh :
HurufKecil = LCase ("Rickie") ’HurufKecil = "rickie"
HurufBesar = Ucase ("Faizin") ’HurufBesar = "FAIZIN"
Title = "Apa Kabar"
lTitle = Left$ (Title, 4) ’lTitle = "Halo"
RTitle = Right$ (Title, 5) ’RTitle = "Dunia"
MTitle = Left$ (Title, 2, 6) ’MTitle = "alo Du"
Panjang = Len ("Biru dan hijau") ’length = 14


Contoh pemakaiannya :
Dim FirstDate As_Date ’lquote Declare variables
Dim IntervalType As String
Dim Number As Integer
Dim Msg
FirstDate = InputBox(’ldblquote Enter a date’rdblquote )
Bynber = InputBox(’ldblquote Enter number of months to add’rdblquote )
Msg = ’ldblquote New date : ’ldblquote & DateAdd(’ldblquote m’rdblquote , Number, FirstDate)
MsgBox Msg
DateDiff : mencari interval waktu antara dua tanggal
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) Dim TheDate As Date ’lquote declare variables
TheDate = InputBox(’ldblquote Enter a date’rdblquote ) Msg = ’ldblquote Day from today : ’ldblquote & DateDiff(’ldblquote d’rdblquote , Now, TheDate)
MsgBox Msg
DateSerial : menghasilkan tanggal dengan bulan/hari/tahun
MyDate = DateSerial(1969, 2, 12) ’lquote Hasil 2/12/69
DateValue : menghasilkan tanggal
MyDate = DateValue(’ldblquote February 12, 1969’rdblquote ) ’lquote Hasil 2/12/69
Year : menghasilkan tahun sekarang
MyYear = Year(#2/12/1969#) ’lquote Hasil 1969
Month : menghasilkan bilangan integer yang menunjukkan bulan
MyDate = #February 12, 1969# ’lquote Assign a date
MyMonth = Month(MyDate) ’lquote MyMonth = 2
MonthName : menghasilkan teks yang menunjukkan nama bulan
a$ = MonthName(1, True) ’lquote a$ = Jan
b$ = MonthName(1, False) ’lquote b$ = January
c$ = MonthName(1) ’lquote c$ = January
Day : menghasilkan integer yang menunjukkan tanggal dari data date
MyDate = #February 12, 1969# ’lquote Assign a date
MyDay = Day(MyDate) ’lquote MyDay berisi 12
Hour : menghasilkan integer yang menunjukkan jam dari data timer
MyTime = #4:35:17 PM# ’lquote Assign a time
MyHour = Hour(MyTime) ’lquote MyHour berisi 16
Minute : menghasilkan integer yang menunjukkan menit dari data timer
MyTime = #4:35:17 PM# ’lquote Assign a time
MyMinute = Minute(MyTime) ’lquote MyMinute berisi 35
Second : menghasilkan integer yang menunjukkan detik dari data timer
MyTime = #4:35:17 PM# ’lquote Assign a time
MySecond = Second(MyTime) ’lquote MySecond berisi 17
TimeSerial : menghasilkan waktu dengan jam/menit/detik
MyTime = TimeSerial(16, 35, 17) ’lquote Isinya 4:35:17 PM
TimeValue : mengubah string waktu dari pukul 0:00:00 (12:00:00 AM) sampai 23:59:59 (11:59:59 PM) menjadi data waktu
MyTime = TimeValue(’ldblquote 4:35:17 PM’rdblquote ) ’lquote Isinya 4:35:17 PM
MyTime = TimeValue(’ldblquote 0:00:00’rdblquote ) ’lquote Isinya 12:00:00 AM
WeekDay : menghasilkan bilangan petunjuk hari dari suatu tanggal
Hari = #February 12, 1969# ’lquote Hari Rabu
MyweekDay = Weekday(Hari) ’lquote MyweekDay isinya 4

WeekDayName : menghasilkan teks nama hari dalam satu minggu